Direct digital synthesis (DDS) is an important frequency synthesis means that provides low cost synthesis with ultra fine resolution. A basic DDS system as shown in FIG. 1a consists of a numerically-controlled oscillator (NCO) to generate the sampled signal followed by a digital-to-analog converter (DAC) used to convert the digital waveform to an analog signal. Since the DAC output is sampled at the reference clock frequency, a deglitch lowpass filter is typically used to smooth the waveform. The NCO uses an N-bit accumulator to generate a phase ramp based on the N-bit input frequency control word (FCW). A read-only memory (ROM) stores the amplitude information of the desired waveform. With the phase word as the address, the ROM's output is the amplitude word of the synthesized waveform. The FCW is continuously accumulated with the last sampled phase value by an N-bit adder. When the accumulator reaches the N-bit maximum value, the accumulator overflows and continues. The rollover rate of the accumulator is hence the DDS output frequency:
                                          f            o                    =                                    f              clk                        ⁢                          FCW                              2                N                                                    ,                            (        1        )            where fclk is the DDS sample clock frequency. According to FIG. 1a, an ideal DDS output signal can be expressed as
                    S        =                              A            ⁢                                                  ⁢            sin            ⁢                                                  ⁢                          (                                                2                  ⁢                  π                  ⁢                                                                          ⁢                  Wt                                                                      2                    n                                    ⁢                                      T                    clk                                                              )                                =                      A            ⁢                                                  ⁢            sin            ⁢                                                  ⁢                          (                                                2                  ⁢                  π                  ⁢                                                                          ⁢                  Wi                                                  2                  n                                            )                                                          (        2        )            where A is the full-scale output magnitude of the DAC and t=Tclk·i. While pure sinusoidal waveform is desired at the DDS output, spurious tones can also occur mainly due to the following nonlinear process:
(1) In order to reduce the look-up table ROM size, the phase word is normally truncated before being used as the ROM addresses. This truncation process introduces quantization noise, which can be modeled as a linear additive noise to the phase of the sinusoidal wave.
(2) The ROM word length is normally limited by the finite number of bits of the available DAC. In another word, the sinusoidal waveform can be expressed only by words with finite length, which intrinsically contains quantization error additive to the output amplitude.
Since the FCW can be stepped by unity, the resolution of the DDS is given as fclk/2N. A DDS can achieve a very fine resolution if the accumulator size N is large. For example, if a 32-bit accumulator is used, and the DDS operates at clock frequency of 100 MHz, its resolution is 0.0233 Hz. However, fine resolution relies on a large number of accumulator bits, which corresponds to a long phase word. Note that the ROM size is proportional to the addressing range 2N. As a result, a large ROM look-up table is required. In order to reduce the ROM size while keeping a fine step size, only the most significant P bits of the phase word are used to address the ROM. This truncation at the accumulator output causes a quantization error that will be discussed later. The ROM size is equal to 2P·D, where D is the number of amplitude bits and is determined by the number of DAC input bits. While increasing the number of phase bits is always feasible, increasing the number of DAC input bits is limited by the semiconductor technology. Even if the desired number of DAC bits can be implemented using an available technology, adding bits is costly due to large increases in die size and power consumption. Therefore, the goal of DDS design is to minimize the phase truncation error such that the DDS output noise is dominated by the DAC quantization noise.
An additional DDS is shown in FIG. 1b and includes a digital accumulator 10 that generates a phase word of p-bits (p) based on the input frequency word of n-bits (n). The DDS utilizes a look-up table 20 to convert the phase word (p) to a sinusoidal amplitude word (D), whose length is normally limited by the finite number of input bits of the digital-to-analog converter (DAC) 30. The sine and cosine look-up table output both sine (0 degree) and cosine (90 degree) quadrature signals. Deglitch filters 40 are added after the DAC 30 to remove the spurious components generated in the data conversion process.
Considering the quantization errors due to phase truncation ep1 and amplitude truncation (finite ROM word length) eA1 and assuming the phase quantization error is small relative to the phase, the ideal DDS output given in (2) shall be modified as:
                                                        S              =                            ⁢                                                A                  ⁢                                                                          ⁢                  sin                  ⁢                                                                          ⁢                                      (                                                                                            2                          ⁢                          π                          ⁢                                                                                                          ⁢                          Wi                                                                          2                          ″                                                                    +                                                                        e                          p                                                ⁡                                                  (                          i                          )                                                                                      )                                                  +                                                      e                    A                                    ⁡                                      (                    i                    )                                                                                                                          ≈                            ⁢                                                A                  ⁢                                                                          ⁢                  sin                  ⁢                                                                          ⁢                                      (                                                                  2                        ⁢                        π                        ⁢                                                                                                  ⁢                        Wi                                                                    2                        ″                                                              )                                                  +                                                                            Ae                      p                                        ⁡                                          (                      i                      )                                                        ⁢                                                                          ⁢                  cos                  ⁢                                                                          ⁢                                      (                                                                  2                        ⁢                        π                        ⁢                                                                                                  ⁢                        Wi                                                                    2                        ″                                                              )                                                  +                                                      Ae                    A                                    ⁡                                      (                    i                    )                                                                                                          (        3        )            Thus, the phase error is amplitude modulated on the quadrature signal with respect to the desired signal output. Eq. (3) provides a simple model for the prior art DDS output and its associated quantization errors. The following models the DDS phase truncation errors by analyzing its time sequence.
The phase truncation process introduces quantization noise, which can be modeled as a linear additive noise to the phase of the sinusoidal wave. At time step n, the N-bit phase word at the output of the N-bit phase accumulator is updated as:Φ[n+1]=(Φ[n]+FCW)mod2N  (4)where Φ[n] represents the phase at time step n, and AmodB represents taking the integer residue of A modulo B. For example, 26 mod16=10. To reduce the ROM size, only the P most significant bits (MSB) of the accumulator output are used to address the look-up table. Truncating the N-bit phase word into P-bits causes a truncation error Ep expressed as:Ep[n+1]=(Ep[n]+R)mod2N-P  (5)where R is the least significant (N-P)-bits of the FCW value given by:
                    R        =                  FCW          -                                    ⌊                              FCW                                  2                                      N                    -                    P                                                              ⌋                        ×                          2                              N                -                P                                                                        (        6        )            where └ ┘ denotes the truncation to keep the integer part. Hence, the output amplitude of the NCO can be expressed as:
                                                                        S                ⁡                                  [                  n                  ]                                            =                            ⁢                              sin                ⁢                                                                  ⁢                                  (                                                            2                      ⁢                      π                      ⁢                                                                                          ⁢                                              (                                                                              Φ                            ⁢                                                                                                                  [                            n                            ]                                                    -                                                                                    E                              p                                                        ⁡                                                          [                              n                              ]                                                                                                      )                                                                                    2                      N                                                        )                                                                                                        =                            ⁢                                                sin                  ⁢                                                                          ⁢                                      (                                                                  2                        ⁢                        π                        ⁢                                                                                                  ⁢                                                  Φ                          ⁢                                                                                                          [                          n                          ]                                                                                            2                        N                                                              )                                    ⁢                                                                          ⁢                  cos                  ⁢                                                                          ⁢                                      (                                                                  2                        ⁢                        π                        ⁢                                                                                                  ⁢                                                                              E                            p                                                    ⁡                                                      [                            n                            ]                                                                                                                      2                        N                                                              )                                                  -                                                                                                      ⁢                                                cos                  ⁡                                      (                                                                  2                        ⁢                        π                        ⁢                                                                                                  ⁢                                                  Φ                          ⁢                                                                                                          [                          n                          ]                                                                                            2                        N                                                              )                                                  ⁢                                                                  ⁢                sin                ⁢                                                                  ⁢                                  (                                                            2                      ⁢                      π                      ⁢                                                                                          ⁢                                                                        E                          p                                                ⁡                                                  [                          n                          ]                                                                                                            2                      N                                                        )                                                                                        (        7        )            where S[n] is the amplitude at time step n. This can be compared to the ideal sinusoidal waveform s(t) given by (2). For small truncation error, the above equation becomes:
                              S          ⁡                      [            n            ]                          ≈                              sin            ⁢                                                  ⁢                          (                                                2                  ⁢                  π                  ⁢                                                                          ⁢                                      Φ                    ⁢                                                                                  [                    n                    ]                                                                    2                  N                                            )                                -                                          ⁢                                                                      2                  ⁢                  π                  ⁢                                                                          ⁢                                                            E                      p                                        ⁡                                          [                      n                      ]                                                                                        2                  N                                            ·              cos                        ⁢                                                  ⁢                          (                                                2                  ⁢                  π                  ⁢                                                                          ⁢                                      Φ                    ⁢                                                                                  [                    n                    ]                                                                    2                  N                                            )                                                          (        8        )            
The first term gives the desired sinusoidal output and second term is the error introduced by phase truncation. As shown, the phase truncation error gives an amplitude-modulated term on the quadrature output. The phase error sequence represented by the truncated N-P bits satisfies the condition that |Ep[n]|<2N-P.